package com.brush.app.service;

import com.brush.app.domain.AppCourse;
import com.baomidou.mybatisplus.extension.service.IService;
import com.brush.app.domain.req.Course.add.AppCourseReq;
import com.brush.app.domain.req.Course.edit.AppCourseEditReq;
import com.brush.app.domain.resp.course.AppCourseResp;
import com.brush.app.domain.resp.course.AppCourseTreeResp;

import java.util.List;

/**
* @author Administrator
* @description 针对表【app_course(课程树型表)】的数据库操作Service
* @createDate 2024-10-31 16:44:54
*/
public interface AppCourseService extends IService<AppCourse> {

    List<AppCourseTreeResp> allCourseTree();

    List<AppCourseTreeResp> searchTableTree(Long subjectId);

    boolean add(AppCourseReq req);

    boolean edit(AppCourseEditReq req);

    AppCourseResp findById(Long id);

    boolean deleteById(Long[] ids);

    /**
     * 构建学科以及下面的课程树
     * @return
     */
    List<AppCourseTreeResp> buildSubjectTree();

    /**
     * 根据课程id获取课程名称
     * @param courseId
     * @return
     */
    String getNameById(Long courseId);

    /**
     * 更新试题数量
     * @param courseId 课程编号
     * @param num  数量
     * @return
     */
    boolean updateQuestionNum(Long courseId,int num);

    /**
     * 获取父级课程
     * @param courseId
     * @return
     */
    Long[] getParentsId(Long courseId);
}
